package fisio.global;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class Util {
	
	public static final String NewLine = System.getProperty("line.separator");
	
	private static final SimpleDateFormat formatBr = new SimpleDateFormat("dd/MM/yyyy");
	private static final SimpleDateFormat dateHourFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
	
	public static String maskCPF(String cpf) {
		return cpf.substring(0, 3)+"."+cpf.substring(3, 6)+"."+cpf.substring(6, 9)+"-"+cpf.substring(9);
	}
	
	public static String unmaskCPF(String cpf) {
		return cpf.replaceAll("[-.]","");
	}
	
	public static String maskCEP(String cep) {
		return cep.substring(0, 2)+"."+cep.substring(2, 5)+"-"+cep.substring(5);
	}
	
	public static String unmaskCEP(String cep) {
		return cep.replaceAll("[-.]","");
	}
	
	public static String maskFone(String fone ){
		return "("+fone.substring(0, 2)+")"+fone.substring(2, 6)+"-"+fone.substring(6);
	}
	
	public static String unmaskFone(String fone) {
		return fone.replaceAll("[()-]","");
	}

	public static java.sql.Date convertDateUtilToSql(java.util.Date dataUtil) {
		return new java.sql.Date(dataUtil.getTime());
	}

	public static java.sql.Timestamp convertDateUtilToTimestampSql(Date data) {
		return new java.sql.Timestamp(data.getTime());
	}
	
	public static java.util.Date convertTimestampSqlToDateUtil(java.sql.Timestamp data) {
		return new java.util.Date(data.getTime());
	}

	public static java.util.Date convertDateSqlToUtil(java.sql.Date dataSql) {
		return new java.util.Date(dataSql.getTime());
	}

	public static java.util.Date convertStringToDateUtil(String data) {
		
		try {
			return (java.util.Date)formatBr.parse(data);
		} catch (ParseException e) {
			System.out.println("\nERRO na conversao " + e.getMessage());
			return null;
		}
	}
	
	public static java.sql.Date convertStringToDateSql(String data) {
		return convertDateUtilToSql(convertStringToDateUtil(data));
	}

	public static String convertDateUtilToString(java.util.Date data) {
		return formatBr.format(data);
	}

	public static String extractTimeFromDateUtil(java.util.Date data) {
		GregorianCalendar gc = new GregorianCalendar();
		gc.setTime(data);
		String horas = ""+gc.get(GregorianCalendar.HOUR_OF_DAY);
		if(horas.length() == 1)
			horas = "0"+horas;
		String minutos = ""+gc.get(GregorianCalendar.MINUTE);
		if(minutos.length() == 1)
			minutos = "0"+minutos;
		return horas+":"+minutos;
	}
	
	public static java.util.Date createDateFromDateHours(String data, String horas){
		try {
			return (java.util.Date)dateHourFormat.parse(data+" "+horas);
		} catch (ParseException e) {
			System.out.println("\nERRO na conversao " + e.getMessage());
			return null;
		}
	}
	
	public static String[] getEspecilidades() {
		return new String[]{"Pilates", "Traumatologia", "Dermato-funcional", "..."};
	}
}
